package br.edu.ufcg.dsc.sig.geointerest.gui.client;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;

public class POI {

	private String id;
	private String nome;
	private String endereco;
	private String tipo;
	private String telefone;
	private String descricao;
	private String dono;
	private double latitude;
	private double longitude;
	private Map<String, String> notas;
	private Map<String, String> comentarios;
	
	public POI(){
		
	}
	
	public POI(String nome, String endereco, String tipo,
			String telefone, String descricao, String dono, double latitude,
			double longitude) {
		super();
		this.id = new Double(1000*Math.random()).toString();
		this.nome = nome;
		this.endereco = endereco;
		this.tipo = tipo;
		this.telefone = telefone;
		this.descricao = descricao;
		this.dono = dono;
		this.latitude = latitude;
		this.longitude = longitude;
		notas = new HashMap<String, String>();
		comentarios = new HashMap<String, String>();
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getEndereco() {
		return endereco;
	}

	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}

	public String getTipo() {
		return tipo;
	}

	public void setTipo(String tipo) {
		this.tipo = tipo;
	}

	public String getTelefone() {
		return telefone;
	}

	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public String getDono() {
		return dono;
	}

	public void setDono(String dono) {
		this.dono = dono;
	}

	public double getLatitude() {
		return latitude;
	}

	public void setLatitude(double latitude) {
		this.latitude = latitude;
	}

	public double getLongitude() {
		return longitude;
	}

	public void setLongitude(double longitude) {
		this.longitude = longitude;
	}

	public Collection<String> getNotas(){
		return notas.values();
	}
	
	public Set<Entry<String, String>> getComments(){
		return comentarios.entrySet();
		
	}
	
	public void avalia(String userLogin, String nota, String comment) {
		comentarios.put(userLogin, comment);
		notas.put(userLogin, nota);
	}

	public String getComment(String userLogin) {
		// TODO Auto-generated method stub
		return comentarios.get(userLogin);
	}

	public String getNota(String userLogin) {
		// TODO Auto-generated method stub
		return notas.get(userLogin);
	}
	
	public Map<String, String> getNota() {
		return notas;
	}
	public void setNota(Map<String, String> nota) {
		this.notas = nota;
	}
	public Map<String, String> getComentarios() {
		return comentarios;
	}
	public void setComentarios(Map<String, String> comentarios) {
		this.comentarios = comentarios;
	}
	
	public String toString() {
		return "SRID = " + id + ", NOME = " + nome + ", ENDERECO = " + endereco + ", DONO = " + dono + 
			   ", TIPO = " + tipo + ", DESCRICAO = " + descricao + ", TELEFONE = " + telefone + ", LATITUDE = " + latitude + ", LONGITUDE = " + longitude + "\n";
	}
	
}
